\subsubsection{Envio y recepción de pedidos}

Estas FSM representan el envio y recepción de pedidos en cada sucursal.\\
El proceso comienza cuando hay una orden remota a transmitir. A partir de ese momento, la FSM se queda en el estado \emph{Pedido a enviar} hasta que sea su turno y pueda sincronizarse con el \emph{timer} mediante la interacción \emph{PuedeEnviarPedido i}. \\
En ese momento el pedido está listo para ser enviado. Ahora intentará conectarse a la sucursal correspondiente (\emph{SucPedido}). La conexión puede fallar, pero se asume que una vez establecida, esta no se interrumpe.\\
Por otro lado, tenemos las sucursales que están a la escucha de pedidos. Estas pasan al estado escuchando, sólo si no es su turno. \\
Mientras escuchan, pueden recibir un pedido de otra sucursal. Luego deben validarlo y si el pedido es aceptado, lo registran en el sistema. Después de esto, (o de la validación, si resultó inválido) se envía la respuesta a la sucursal, informando el estado de la operación. \\
Por último, ambas FSMs cierran la conexión y vuelven al estado inicial. \\
Cada sucursal se conecta al servidor de hora. La conexión puede fallar pero se asume que una vez establecida, no se interrumpe.\\
Después de conectarse, la sucursal consulta la hora, y espera una respuesta. Cuando obtiene la respuesta, se desconecta y actualiza el reloj de tiempo real (rtc).\\
El servidor de hora, se pone a la escucha de peticiones.\\
En algún momento una sucursal se conecta y envia una consulta. \\
El servidor obtiene la hora de su rtc y se la devuelve a la sucursal. \\
Luego se desconecta y vuelve a escuchar. \\
\begin{figure}[!ht]
  \centering
  \subfloat[El envio de un pedido]{\includegraphics[angle=90, scale=0.3]{imagenes/diagramas/fsm_pedido_send.png}}
  \subfloat[La recepción de un pedido]{\includegraphics[angle=90, scale=0.3]{imagenes/diagramas/fsm_pedido_recive.png}}
  \caption{Máquinas de estados que modelan el envio de un pedido y la recepción de un pedido.}s
\end{figure}

\clearpage